package mathematics.square;

/**
 * 计算整数面积(Integer)
 * @author 杜伟毅
 * @version 1.0
 * @since 2024/11/08
 */
public class AreaInteger implements Square<Integer>{
    /**
     * 计算方形的面积
     *
     * @param side 长
     * @param wide 宽
     * @author 杜伟毅
     * @since 2024/11/5 0005 23:58
     */
    @Override
    public Integer area(Integer side,Integer wide) {
        return side * wide;
    }

    /**
     * 根据面积计算方形的边长
     *
     * @param area 面积
     * @param side 边
     * @return 对函数返回值的描述
     * @author 杜伟毅
     * @since 2024/11/6 0006 0:13
     */
    @Override
    public Integer areaToSide(Integer area,Integer side) {
        return area / side;
    }

    /**
     * 计算平行四边形的面积
     * @param side 底
     * @param high 高
     * @return 对函数返回值的描述
     * @author 杜伟毅
     * @since 2024/11/17 0017 20:06
     */
    @Override
    public Integer parallelogramArea(Integer side,Integer high) {
        return side * high;
    }

    /**
     * 计算梯形的面积
     *
     * @param upBase  上底
     * @param botBase 下底
     * @param height  高
     * @return 对函数返回值的描述
     * @author 杜伟毅
     * @since 2024/11/17 0017 17:50
     */
    @Override
    public Integer trapezoidArea(Integer upBase, Integer botBase, Integer height) {
        return (upBase + botBase) * height / 2;
    }
}
